初识 MongoDB 数据库
本篇阅读时间约为 8 分钟。
1
前言
Flask 基础框架在之前的三篇文章中写完了。想要学习 web 相关的同学可以自己回顾翻一下,相信看完了,你也可以写出来一个简单的小案例来炫耀一波!
说到 web 开发,就不得不提到一个东西,数据库!之前在介绍实战项目时候,我提到过本次项目需要用到的数据库 - MongoDB。本篇来带你如何从零安装 MongoDB 数据库。下一篇介绍 Python 操作数据库。
2
数据库历史
开始之前,为了照顾一些非专业领域的朋友,先来介绍一下,什么是数据库?为什么会诞生出数据库的概念?以及为什么数据库下还要细分一些不同的领域数据库。
1. 伴随数据的发展历史所带来的载体
以下也是我自己查的资料(不一定准确,欢迎知道的读者来挑错!),虽然知道数据库设计出来的目的是什么,不过还是去检索了下它的发展由来历史。
数据库诞生的发展大概经历了三个重大时期。每一次都是数据爆发提升所带来的系统改变。
第一个时期是 1880 年美国人口普查。为了表示记录数据,发明了分拣机、制表机和记录机,记录完整的数据。打孔卡上的孔,表示数据。打空带便是信息的载体。
第二个时期 - 文件系统。其本身被认为是一个与文件柜极为相似的范例。这个时期我理解就是小学时候用到的文件夹,里面可以按照不同文件进行分类。
在电脑系统中,文件系统我们已经接触过了,其实就是对文件的进行操作管理的系统。比如你在 Windows 上创建 txt 文本之类的。
第三个时期在二十世纪六十年代,随着计算机速度和功能的增长,计算机被用于制造和更广泛的实验室使用。从而诞生了数据库以及数据库管理系统(DBMS),到20世纪60年代中期,许多此类系统已投入商业使用。
2. 数据库的设计目的
这里我就不用官方定义来说了,简单的举个栗子用自己的观点陈述一下。
早期我们使用文件来对数据进行记录,比如我们常用的 excel ,word 等。Excel 相信大家都用过,它本身的设计基于行和列,由行和列组成一个“二维表”的结构,来对数据进行存储。使用的过程中,我们可以用筛选等功能来处理数据。但面临的问题是,当数据过于庞大,文件就会打不开了。甚至可能出现程序崩坏的情况。
那么此时,就需要一个大数据容量的东西来存储数据,所以数据库设计最重要的本质就是存储大量数据。同时,再此基础上提供了对数据操作的简易性,对数据的完整性,以及对数据的安全性等特性。
下面是从 Quora (类似知乎,不对,应该是知乎仿照它...)查到的一个问题,为什么我们需要数据库?英语好的同学可以看下,不翻译了。
3. 关系型数据库与非关系型数据库
关系型数据库:
SQL (Structured Query Language) 数据库,指关系型数据库。主要代表:SQL Server,Oracle,MySQL(开源),PostgreSQL(开源)。
现在市面上用的最多的关系型数据库就是以上几个代表,简单的说,其实关系型数据库原理类似 Excel ,由行和列组成一张“二维”关系的数据表。
使用 SQL 语句即可对数据库进行操作,比如创建库,创建表,查询表数据等。。。SQL 语句就像下面这样:
select * from user; # 查找用户表
查询结果也类似这样的展现形式:
非关系型数据库:
NoSQL(Not Only SQL)泛指非关系型数据库。主要代表:MongoDB,Redis,CouchDB。
有了 SQL 数据库,为什么还有 NoSQL 数据库?
在当今互联网时代,数据越来越庞大,关系数据库运行的慢,处理大数据的大多数情况是 NoSQL 比较高效,但 NoSQL 并不能完全取代关系数据库,有些复杂操作并不能处理。
NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。
举个常见的例子,仅是个人猜测,我们日常用的微博(若有错误,还望指出),它处理每个明星与粉丝之间的关系,这么种类繁多的属性字段,如果用 NoSQL 远比 SQL 要好很多,因为字段与字段之间没有相关性。
说下为什么本交通统计项目采用的是 MongoDB 呢?理由很简单,因为高德地图返回的数据类型是 JSON 格式,用 MongoDB 兼容性非常好,直接存入即可。
3
安装 MongoDB
不同平台的下载地址都是一样的,搜索引擎搜索 MongoDB :
这下载入口做的不太明显,我也是找了一小会儿,哈哈哈!~大家根据自己电脑系统下载不同版本即可。Package MSI就是windows的一键安装,我习惯下 ZIP ,所以选到了 ZIP 进行下载,大概 200 MB+。
解压后,进入 bin :
如果此时你直接双击打开,能看到的结果就是黑框一闪而过,然后....然后就没啥了。。。因为你打开的方式不太对!
接下来:
手动在此目录下,创建一个文件 mongo.config:
记事本或者什么其他工具,打开编辑,配置下 Mongo 的数据存储位置以及日志存储位置:
dbpath=C:/Users/asus/Desktop/mongodb/db
logpath=C:/Users/asus/Desktop/mongodb/log/mongodb.log
这里的路径一定要是绝对路径,改成自己的即可,同时在创建对应指定目录,db 和 log:
最后一步,进入 bin ,然后 shift + 鼠标右键,在此处打开 shell 窗口,输入:
mongod.exe --config C:\Users\asus\Desktop\mongodb\bin\mongo.config --install --serviceName "MongoDB" --journal
这里的 --config 参数后面的文件也必须是绝对路径。
解释下,上述代码的意思是将 mongo 作为服务的形式配置在 windows 电脑上,便于我们启动。按下 win + R 键,打开服务:
这个就是刚才我们配置的 mongodb 服务,右键启动就好。启动完毕,可以看下刚才 mongo 的 db 和 log 目录下是不是生成了一些文件呢:
以上,mongodb 数据库安装完毕。
4
MongoDB 可视化工具
依然官网,下载可视化工具:
类似 mongodb ,点到 tool 处下载,然后让你填一个信息,瞎写就好,提交完就能下载了:
可视化工具,直接打开 exe 即可:
配置默认即可,没改动过,localhost代表本机,port 27017 是 mongodb 的默认端口:
完工!
5
可视化工具操作 MongDB
专业人员不要觉得用可视化工具来操作显得很 lowB ,实际上工具本来就是可以帮我们节省大量的时间。而每个视图背后对应的本质还是命令代码。
1. 创建数据库
2. 填写数据库名称,以及 Collection 名称
3. 创建文档
插入完成后,转化为表来展示,看看是否和我们常见的 Excel 相似呢:
6
总结
对于 MongoDB 的具体内容,以及每个官方字段的含义,放在下一篇介绍了!本篇篇幅又超长了。。。
下篇文章,如何使用 Python 操作 MongoDB 数据库(拖延了一篇。。。),敬请期待!
如果有什么问题,欢迎小伙伴们留言探讨!
flask入门 (二)(不用写代码的前端!)初始flask,搭建第一个自己的网页